package enum_;

/**
 * @author DCSGO
 * @version 1.0
 * 常用枚举方法
 */
public class EnumMethod {
    public static void main(String[] args) {
        TestEnum enum1 = TestEnum.A;
        TestEnum enum2 = TestEnum.B;

        //name 返回枚举对象的名称
        System.out.println(enum1.name());//A

        //ordinal 返回枚举对象的次序(在第几位 从0 开始)
        System.out.println(enum1.ordinal());//0
        System.out.println(enum2.ordinal());//1

        //values 返回由所有枚举对象所组成的数组
        TestEnum[] enums = TestEnum.values();
        for (TestEnum curEnum :
                enums) {
            System.out.print(curEnum + " ");
        }//A B C D

        //valueOf 通过传入的字符串返回一个与之匹配的枚举对象
        TestEnum enumA = TestEnum.valueOf("A");
        System.out.println("\n" + enumA);//A

        //compareTo 返回 调用该方法的枚举对象的序号 - 传入的枚举对象的序号
        System.out.println(enum1.compareTo(enum2));//-1  0 - 1
        System.out.println(enum2.compareTo(enum1));//1   1 - 0

        //toString 返回调用该方法的枚举对象的名称
        System.out.println(TestEnum.D.toString());//D
    }
}

enum TestEnum {
    A, B, C, D;
}
